package com.yinhe.music.yhmusic.video.list;

import com.yinhe.music.yhmusic.base.IBaseView;
import com.yinhe.music.yhmusic.model.MvsInfo;
import com.yinhe.music.yhmusic.share.ISharePresenter;

import java.util.List;

/**
 * {@link MvFragment} 契约类
 *
 * @author 何晓华
 */
public interface IMvListContract {
    interface IMvListPresenter extends ISharePresenter {
        /**
         * 获取视频列表
         *
         * @param page       当前页
         * @param pageSize   每页个数
         * @param classifyId 分类id
         */
        void getMovieList(int page, int pageSize, int classifyId, int type);

        /**
         * 收藏mv
         *
         * @param mvsInfo  mv信息
         * @param position 列表中的位置
         */
        void collectMv(MvsInfo mvsInfo, int position);

        /**
         * 获取搜索视频列表
         *
         * @param page     当前页
         * @param pageSize 每页个数
         * @param keyword  关键词
         * @param type     页面来源
         */
        void getSearchList(int page, int pageSize, String keyword, int type);

        /**
         * 获取歌手的视频列表
         *
         * @param page     当前页
         * @param pageSize 每页个数
         * @param id       歌手id
         * @param type     页面来源
         */
        void getSingerMovieList(int page, int pageSize, int id, int type);

        /**
         * 获取用户收藏的视频列表
         *
         * @param page     当前页
         * @param pageSize 每页个数
         * @param type     页面来源
         */
        void getCollectMovieList(int page, int pageSize, int type);
    }

    interface IMvListView extends IBaseView {
        /**
         * 设置视频列表
         *
         * @param mvsInfoList 视频列表
         * @param pageNum     总页数
         */
        void setMvListUI(List<MvsInfo> mvsInfoList, int pageNum);

        /**
         * 更新收藏状态
         *
         * @param mvsInfo  mv信息
         * @param position 列表中的位置
         */
        void updateCollectUI(MvsInfo mvsInfo, int position);

        /**
         * 设置收藏数
         *
         * @param num 收藏数
         */
        void setCollectListHead(int num);
    }

}
